Contents

Example script demonstrating phased array focused imaging (FI) with a

dataset recorded from the Verasonics Vantage 256 with a P4-2v probe.

The dataset was used in the publication; Rindal, O. M. H., Aakhus, S., Holm, S., &

%		 Austeng, A. (2017). Hypothesis of Improved
%		 Visualization of Microstructures in the
%		 Interventricular Septum with Ultrasound and
%		 Adaptive Beamforming. Ultrasound in Medicine and
%		 Biology, 43(10), 2494?2499.
%		 https://doi.org/10.1016/j.ultrasmedbio.2017.05.023
%
% If you want to use this dataset you have to reference the article.
%



% Clear up
close all;

% Read the data, poentitally download it
url='http://ustb.no/datasets/';      % if not found downloaded from here
local_path = [ustb_path(),'/data/']; % location of example data
addpath(local_path);

% Choose dataset
filename='Verasonics_P2-4_parasternal_long_small.uff';
% check if the file is available in the local path or downloads otherwise
tools.download(filename, url, local_path);
channel_data = uff.read_object([local_path, filename],'/channel_data');
UFF: reading channel_data [uff.channel_data]
UFF: reading sequence [uff.wave] [====================] 100%

Print info about the dataset. Remeber that if you want to use this dataset you have to reference this article!

channel_data.print_authorship
Name: 		 A human heart in parasternal long axis, scanned  
		 on the Verasonics 
Reference: 	 Rindal, O. M. H., Aakhus, S., Holm, S., &  
		 Austeng, A. (2017). Hypothesis of Improved  
		 Visualization of Microstructures in the  
		 Interventricular Septum with Ultrasound and  
		 Adaptive Beamforming. Ultrasound in Medicine and  
		 Biology, 43(10), 2494–2499.  
		 https://doi.org/10.1016/j.ultrasmedbio.2017.05.023 
Author(s): 	 Ole Marius Hoel Rindal <olemarius@olemarius.no> 
Version: 	 1.0.0 

Do beamforming

depth_axis=linspace(0e-3,110e-3,512).';
azimuth_axis=zeros(channel_data.N_waves,1);
for n=1:channel_data.N_waves
    azimuth_axis(n) = channel_data.sequence(n).source.azimuth;
end

scan=uff.sector_scan('azimuth_axis',azimuth_axis,'depth_axis',depth_axis);

mid=midprocess.das();
mid.channel_data=channel_data;
mid.dimension = dimension.both();
mid.scan=scan;
mid.transmit_apodization.window=uff.window.scanline;
mid.receive_apodization.window=uff.window.tukey25;
mid.receive_apodization.f_number = 1.7;

b_data = mid.go();
USTB General beamformer MEX v1.1.2 .............done!

Plot image

b_data.plot(3,['DAS']);

Beamform the image with 4 MLA's per scan line with two overlapping

MLA = 4;
scan_MLA=uff.sector_scan('azimuth_axis',...
    linspace(channel_data.sequence(1).source.azimuth,channel_data.sequence(end).source.azimuth,...
    length(channel_data.sequence)*MLA)','depth_axis',depth_axis);

mid_MLA=midprocess.das();
mid_MLA.channel_data=channel_data;
mid_MLA.dimension = dimension.both();
mid_MLA.scan=scan_MLA;
mid_MLA.transmit_apodization.window=uff.window.scanline;
mid_MLA.transmit_apodization.MLA = MLA;
mid_MLA.transmit_apodization.MLA_overlap = MLA/2;
mid_MLA.receive_apodization.window=uff.window.tukey25;
mid_MLA.receive_apodization.f_number = 1.7;

b_data_MLA = mid_MLA.go();
USTB General beamformer MEX v1.1.2 .............done!

Plot the image

b_data_MLA.plot(4,['DAS with MLAs']);